home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / A-Monthly Disks / (c)aaj.d64 / printbootdata < prev    next >
Text File  |  2007-02-04  |  24KB  |  3 lines

  1. ─OCUMENTATION FOR ┼┴ - ╨ART ╘WO OF ╘WO.┼┴ IS AN EDITOR-ASSEMBLER.  ├OPYRIGHT 1984 BY ╠EW ╠ASHER.╧VERVIEW OF ASSEMBLER FEATURES:┼┴ IS AN ASSEMBLER FOR THE ├OMMODORE 64.  ┴N ASSEMBLER IS APROGRAM USED TO TRANSLATE MACHINE LANGUAGE PROGRAMS FROMPERSON-READABLE FORM (THE SOURCE PROGRAM) TO A MACHINE-USABLEFORM (THE OBJECT PROGRAM).  ╘HE ASSEMBLER ALLOWS YOU TO WRITE,MAINTAIN, AND MODIFY A LARGE, COMPLICATED MACHINE LANGUAGEPROGRAM.╧PERATION:┼┴ REQUIRES THE SOURCE FILE TO BE PUT IN ONE OR MORE TEXT FILESON A FLOPPY DISK.  ┴FTER YOU HAVE CREATED THE SOURCE FILES, ANDWRITTEN THEM TO DISK (USING THE ├= ╫ COMMAND), YOU CAN RUN THE ASSEMBLER BY TYPING ├= ┴.┼┴ ASKS YOU FOR THE NAME OF THE SOURCE FILE.  ╔F YOU TYPE"BLURFO" FOR THE NAME, ┼┴ FIRST LOOKS FOR A FILE NAMED "BLURFO".╔F IT CANNOT FIND "BLURFO", THEN IT LOOKS FOR "BLURFO.A".  ╔FIT CANNOT FIND EITHER ONE, IT PRINTS AN ERROR MESSAGE AND RETURNS TO THE EDITOR.╔F IT FINDS EITHER ONE, IT CREATES AN OBJECT FILE CALLED"BLURFO.O".  ╘HE FILENAME YOU TYPE MUST NOT BE LONGER THAN 14CHARACTERS, TO MAKE ROOM FOR THE EXTENSION ".O".╘HEN ┼┴ ASKS YOU IF YOU WANT TO MAKE A LIST FILE.  ┘OU SHOULDTYPE "Y" OR "N".  ╘HE LIST FILE, WHICH IN THE CURRENT EXAMPLEWOULD BE NAMED "BLURFO.L", LISTS THE NUMERIC VALUE OF EVERY BYTEIN THE OBJECT FILE, ALONGSIDE THE ADDRESS AT WHICH THE BYTE WILLBE LOADED AND THE SOURCE LINE CORRESPONDING TO THAT BYTE.  ╠ISTFILES ARE USEFUL IN DEBUGGING PROGRAMS.┴LL THESE FILES MUST BE ON A DISK DRIVE WITH DEVICE NUMBER 8AND, IF A DUAL DRIVE, DRIVE NUMBER 0.┴FTER OPTIONALLY CREATING THE LIST FILE, ┼┴ BEGINS THE FIRSTPASS.  ╒NLESS THERE IS AN ERROR ON THE DISK DRIVE, YOU WILL NOTSEE ANYTHING ON THE SCREEN DURING THE FIRST PASS.  ╬O OUTPUT ISWRITTEN TO EITHER THE OBJECT FILE OR THE OPTIONAL LIST FILEDURING THE FIRST PASS.  ╘HE ONLY PURPOSE OF THE FIRST PASS IS TOFIGURE OUT THE ADDRESSES WHERE THE PROGRAM WILL BE LOCATED, ANDTHEREBY ASSIGN NUMERIC VALUES TO EACH LABEL AND SYMBOL IN YOURPROGRAM (╙EE BELOW FOR MORE ABOUT SYMBOLS AND LABELS).┴FTER THE FIRST PASS IS COMPLETED, ┼┴ PRINTS THE MESSAGE"┬EGINNING 2ND PASS" AND DOES JUST THAT.  ─URING THE 2ND PASS,YOU SHOULD SEE ON THE SCREEN A LISTING OF YOUR SOURCE PROGRAM,BUT WITH VARIOUS NUMBERS OVER IN THE LEFT MARGIN, AND VARIOUSERROR MESSAGES PRECEDING THE ERRONEOUS SOURCE LINES.  ╔F YOUCHOSE TO MAKE A LIST FILE, THE TEXT YOU SEE ON THE SCREEN WILLBE THE TEXT YOU GET IN THE LIST FILE.  ═EANWHILE THE OBJECTPROGRAM IS BEING WRITTEN TO THE OBJECT FILE.╞INALLY YOU WILL SEE THE MESSAGE "┼RRORS DETECTED: 0" WHICHINDICATES THAT ┼┴ DID NOT DETECT ANY OF THE ERRORS IN YOURPROGRAM.  ╬OTE THAT ANY ERRORS THAT ┼┴ DETECTS ARE, IN A SENSE,"MERE WARNINGS", IN THAT (EXCEPT FOR ╔/╧ ERRORS), YOU STILL AREGIVEN AN OBJECT FILE WHICH CAN BE LOADED AND RUN.┴T ANY POINT IN EITHER THE FIRST OR SECOND PASS, YOU MAY CUT OFFTHE ASSEMBLY BY HITTING THE ╥╒╬/╙╘╧╨ KEY.  ┘OU SHOULD DELETE THEINCOMPLETE OBJECT AND LIST FILES WHICH WILL HAVE BEEN CREATED.┴FTER ┼┴ EXITS, YOU CAN LOAD AND RUN THE OBJECT FILE BY TYPING:        LOAD "BLURFO.O",8,1        SYS NWHERE N IS THE ADDRESS OF THE START OF YOUR PROGRAM.═ISCELLANEOUS SPECIFICATIONS:┼┴ WILL NOT WORK WITH DISK DRIVES OTHER THAN A ├OMMODORE 1541 ORAN ═╙─ ╙─-2.  ╔F CHANGES ARE MADE TO THE ╥╧═'S IN THESE MODELS,IT MAY NOT EVEN WORK WITH THEM.─IFFERENCES FROM OTHER ASSEMBLERS:╘HERE ARE NUMEROUS DIFFERENCS BETWEEN ┼┴ AND OTHER ASSEMBLERSFOR THE ├-64.  ═ANY OF THESE ARE "ADDED FEATURES" OF ┼┴ WHICHWILL NOT I@░; ≤; 0#█a│ #│ 0#+  ;q 1α#±≡#ú ±√ δq  █ a │ pπ≤±╨G╫≡p ; πδ  ;qs ; w '!0#∙±11 █a ≡#+ 0.!0/q+`±  pW ≡ Pï Éσ╖  é G Éxs0 ┘ƒ╝¥zÇ á ≈ +í ±╗~└/│≡+╡╒φ ■p⌠  C└∞░α  ╨~╩e∩w* ░U¿ì/Y P 
  2. ª^ü  ¿ t▒zá @ ╖Ví⌠╝ ╡∙{P£ τ└ δ g°╨ ╟╖K└ uε╩½≡ P]| £║  ╘HE DIRECTIVE * = N IS NOT SUPPORTED.  ╔N OTHER ASSEMBLERS,THIS DIRECTIVE IS USED PRIMARILY FOR TWO PURPOSES.  ╘HE FIRSTPURPOSE IS TO ESTABLISH THE ADDRESS FOR THE FIRST BYTE IN THEOBJECT PROGRAM.  ╞OR THAT PURPOSE, REPLACE:        * = 2049WITH:        .ORIGIN 2049╘HE SECOND COMMON PURPOSE IS TO ALLOCATE AN AREA OF MEMORYWITHOUT SPECIFING THE CONTENTS OF THAT MEMORY.  ╞OR THATPURPOSE, REPLACE:        * = * + 1WITH:        .BLKB 13.  ├OMMODORE'S ASSEMBLER HAS A DIRECTIVE CALLED ".BYT" WITH CANBE USED TO GENERATE BOTH NUMERIC AND TEXT DATA.  ╔N ┼┴, THISDIRECTIVE IS CALLED ".BYTE", AND ONLY GENERATES NUMERIC DATA,WHILE THE .ASCII DIRECTIVE GENERATES TEXT DATA.  ╘HEREFORE,REPLACE:        .BYT 15, '╘EXT STRING', 0WITH:        .BYTE 15        .ASCII '╘EXT STRING'        .BYTE 04.  ┼┴ LACKS THE MACRO DIRECTIVES, CONDITIONAL ASSEMBLYDIRECTIVES, AND OTHER SPECIALIZED DIRECTIVES FOUND IN OTHERASSEMBLERS.5.  ┼┴ DOES NOT REQUIRE OR ALLOW THE ".END" DIRECTIVE WHICH MANYASSEMBLERS REQUIRE AT THE END OF A SOURCE FILE.  ┴CTUALLY, ┼┴IGNORES THE .END AS AN UNRECOGNIZED DIRECTIVE, BUT YOU SHOULDDELETE THE .END TO AVOID THE ERROR MESAGE.╞ORMAT OF SOURCE FILE:╘HE SOURCE FILE SHOULD BE A SEQUENTIAL FILE, WITH EACH LINETERMINATED BY A ╥┼╘╒╥╬ CHARACATER.  ╠INES ARE LIMITED TO 255CHARACTERS, NOT INCLUDING THE ╥┼╘╒╥╬ CHARACTER.  ┬LANK LINES ARELEGAL, AND SPACES CAN BE PUT IN LIBERALLY TO IMPROVE READABILITY(EXCEPTIONS: SPACES MAY NOT BE PUT IN THE MIDDLE OF A NUMERAL ORAN IDENTIFIER).  ╒PPER AND LOWER CASE LETTERS ARE TREATEDIDENTICALLY EXCEPT IN .ASCII OR .ASCIZ DIRECTIVES AND INCHARACTER LITERALS.  ┴ SEMICOLON (";") IS USED TO INDICATE THEBEGINNING OF A COMMENT.  ┴LL TEXT AFTER THE SEMICOLON, AND THESEMICOLON ITSELF, IS IGNORED (EXCEPTIONS: TEXT STRINGS IN .ASCIIAND .ASCIZ DIRECTIVES AND CHARACTER LITERALS).┴ VALID LINE CAN BE ANY OF THE FOLLOWING:1.  ┴ BLANK LINE.2.  ┴ SYMBOL DEFINITION, E.G.:        CURSORDOWN = 173.  ┴N INSTRUCTION FOR THE 6510 MICROPROCESOR, E.G.:        LDA # 04.  ┴N ASSEMBLER DIRECTIVE, E.G.:        .BYTE 55.  ┴NY OF THE ABOVE (1-4) PRECEDED BY ONE OR MORE LABELS, E.G.:        START: STARTLOOP: LDA # 0        LENGTH: .BYTE 0        BLANKLINE: ; COMMENT┬LANK LINES:┬LANK LINES ARE USEFUL FOR THE FOLLOWING PURPOSES:  TO MAKE THESOURCE OR LIST FILE MORE READABLE, TO HOLD A LABEL, AND TO HOLDCOMMENTS.  ╔ APOLOGIZE TO PEOPLE WHO WOULD NOT CONSIDER A LINEHAVING A LABEL AND/OR A COMMENT TO BE A "BLANK LINE".╙YMBOL DEFINITIONS:┴ SYMBOL DEFINITION IS USED TO DEFINE A NAME TO REPRESENT ANUMERIC VALUE.  ╧NE USE OF SYMBOLS IS TO REFER TO ADDRESSES NOTLOCATED WITHIN THE OBJECT FILE, FOR EXAMPLE, ╦┼╥╬┴╠ ROUTINES,PAGE ZERO, THE SPECIAL ADDRESSES USED BY THE VIDEO, SOUND, AND╔/╧ CHIPS, AND VECTORS:        CHROUT = 65490        CURRENT.KEY = 197        COLOR.MEMORY = $─800        ┴─╙╥1  = 54277        CIA1.DATA.PORT.┴ = $DC00        IRQ.VECTOR = 788╙YMBOLS CAN BE USED FOR VARIOUS CONSTANTS IN YOUR PROGRAM, TOMAKE THE PROGRAM EASIER TO UNDERSTAND AND TO MODIFY, E.G.:        SPACE.CHAR = 32        DISK.DEVICENUM = 8        POINTER = 251╙OMETIMES YOU MAY USE A SYMBOL TO REFER TO A MEMORY LOCATIONWITHIN THE OBJECT FILE.  ╔N GENERAL, LABELS ARE PREFERRED OVERSYMBOLS FOR THIS PURPOSE.  ╚OWEVER, NOTE THAT THE FOLLOWING AREVERY SIMILAR IN EFFECT:        LOCATION:       ; LABEL        LOCATION = *    ; SYMBOL╘HE DIFFERENCE IS THAT A SYMBOL CAN BE REDEFINED MANY TIMESWITHIN THE PROGRAM WITHOUT ERROR, WHILE A LABEL IS SUPPOSED TOREFER TO ONLY ONE LOCATION.  ╘HE ONE INSTANCE IN WHICH IT MAKESSENSE TO USE A SYMBOL IS TO MARK THE BEGINNING OF A LOOP:        LOOP = *            ; BODY OF LOOP            DEX            BNE LOOP╙INCE THE ASSEMBLER USES THE MOST RECENTLY-ASSIGNED VALUE OF THESYMBOL, THIS PATTERN CAN BE USED FOR MANY LOOPS, WITHOUT HAVINGTO THINK OF DISTINCT NAMES FOR THE START OF EACH LOOP.  ┬UT NOTETHAT THIS PATTERN WILL FAIL MISERABLY FOR A FORWARD BRANCH, ORFOR A LOOP WITHIN A LOOP.┬ECAUSE THE FIRST PASS OF THE ASSEMBLER IS DEVOTED TO DEFININGLABELS AND SYMBOLS, YOU CAN REFER TO A SYMBOL OR LABEL THAT ISDEFINED LATER IN THE SOURCE FILE.  ╘HIS IS:CALLE^ A "FORWARDREGσR  π@║╨      ╥    0>ß±░#+      ≈'╖7áP     ┤\└Ü· ·░ORWARD REFERENCE.  ╞OR EXAMPLE:        A = B + 40        B = 1024IS LEGAL, BUT:        A = B        B = C        C = 100IS NOT LEGAL.  ┘OU SHOULD NOT, HOWEVER, USE EVEN A SINGLE-LEVELFORWARD REFERENCE IN A .BLKB OR .BLKW DIRECTIVE.  (╘HESEDIRECTIVES ARE DESCRIBED BELOW).  ╘HE ASSEMBLER USES THESEDIRECTIVES IN THE FIRST PASS TO FIGURE OUT HOW MUCH MEMORY TOALLOCATE.  ╔F A SYMBOL USED IN A .BLKB OR .BLKW DIRECTIVE ISUNDEFINED ON THE FIRST PASS, THEN ALL SUBSEQUENT LABELS WILL BEDEFINED INCORRECTLY.  ╙YMBOLS THAT REFER TO PAGE ZERO SHOULD BEDEFINED BEFORE THEY ARE USED.  ╙INCE INSTRUCTIONS REFERRING TOPAGE ZERO USUALLY TAKE 2 BYTES, AS OPPOSED TO 3 BYTES FORADDRESSES ON ANY OTHER PAGE, THE ASSEMBLER NEEDS TO KNOW DURINGTHE FIRST PASS WHETHER AN INSTRUCTION REFERS TO PAGE ZERO ORNOT.  ╔F THE ADDRESS IS SPECIFIED BY AN UNDEFINED SYMBOL, THEASSEMBLER ASSUMES THAT THE ADDRESS IS ╬╧╘ ON PAGE ZERO.  ╔F THISASSUMPTION PROVES INCORRECT, ALL SUBSEQUENTLY-DEFINED LABELSWILL BE DEFINED INCORRECTLY.  ╘HEREFORE, ALL SYMBOLS REFERRINGTO PAGE ZERO ═╒╙╘ BE DEFINED BEFORE THE INSTRUCTIONS THAT REFERTO THE SYMBOLS.╙INCE IT IS AN ERROR TO REDEFINE A LABEL, IT IS ALSO AN ERROR TODEFINE A SYMBOL WITH THE SAME NAME AS A LABEL.╔DENTIFIERS:┴N αΘEσ@Död  ╨        ╨╦∙Φì▐╨áç  σ└ δq ⌡   à╡╖? X ² ▐ ■αδ░ Ñ≡Dq¥▐╘¥╨ @= ⌠`~   
  3.  à>öσCñDτÉ   a0#aαTO   ÜPRO^U@e [ MEMORY MAP RAT  yÇpuÇÉ p LISTING OF EVERY    LINE OF THE PROGRAM.  ╘HE OUTPUT FROM THE .PRINT DIRECTIVE    IS PERFORMED EVEN IARACTERS) OF A SOURCE LINE.  ╒PPER AND LOWER CASELETTERS ARE TREATED IDENTICALLY IN IDENTIFIERS.  ╘HE NAMES ┴, ╪,AND ┘ SHOULD NOT BE USED, EVEN THOUGH LEGAL, BECAUSE OTHERASSEMBLERS FORBID THEIR USE.  ╘HIS ASSEMBLER ALLOWS THEIR USE,EXCEPT THAT A LONE ┴ AS AN OPERAND TO A 6510 INSTRUCTION WILL BECONFUSED FOR A REFERENCE TO THE 6510'S ACCUMULATER.┼XAMPLES OF LEGAL IDENTIFIERS:     AND ILLEGAL IDENTIFIERS:            ╤                       8            ┴3333333                3┴┴┴┴┴┴┴            A.B.C                   .A.B.C═ACHINE INSTRUCTIONS:(┴FTER ALL, THE WHOLE POINT OF AN ASSEMBLER IS TO LET YOU ENTERMACHINE INSTRUCTIONS.)  ┼┴ RECOGNIZES THE STANDARD 56INSTRUCTION MNEMONICS, WHICH YOU MAY TYPE IN EITHER UPPER ORLOWER CASE.  ┼┴ USES THE STANDARD PUNCTUATION FOR THE VARIOUSADDRESSING MODES:        CLC         ; IMPLIED        ADC # 1     ; IMMEDIATE        ASL ┴       ; ACCUMULATOR        LDX ┌       ; ZERO PAGE        ORA ┌,╪     ; ZERO PAGE, ╪        AND ┌,┘     ; ZERO PAGE, ┘        CPX ┼         ABSOLUTE        LDY ┼,╪     ; ABSOLUTE, ╒        LDX ┼p┘     ; ABSOLUTE, ┘  ,  ≡║ 1   d  `]      f}w {√ ÇÇü  »αypW■ τ 0'ñ ╥  ▐φ ¿)      :Φr ∩^╬ δ╢\ÿ╩tÇ ε╨╨≥ε∞úP â╨╦?     ß █ V  τ'  m╘│ ~ú└u ⌠▌╬=q{  s}φp≤  ┌ IS AN EXPRESSION WHOSE VALUE IS BETWEEN 0-255, AND ┼ ISAN EXPRESSION WHOSE VALUE IS NOT NECESSARILP BETWEEN 0-255. (╘HE EXACT DEFINITION OF AN "EXPRESS@ON" WILL BE GIVEN LATER.) ╬OTE THAT IT IS OFTEN NOT THE PUNCTUATION, BUT THE VALUE OF THEEXPRESSION, WHICH DISTINGUISHES CERTAIN ADDRESSING MODES.┘OU MAY, BUT NEED NOT, PUT IN SPACES BEFORE OR AFTER A "(", ")",",", OR "#".  ┘OU MUST PUT IN A SPACE AFTER THE NAME OF THEINSTRUCTION IF THE OPERAND STARTS WITH A LETTER.┼XPRESSIONS:┴N EXPRESSION IS A BUNCH OF TEXT THAT REPRESENTS A NUMERICVALUE.  ╘HE G∩LLOWING ARE LEGAL EXPRESSIONS:1.  ┴ DECIMAL NUMERAL (0 TO 65535):        10242.  ┴ HEXADECIMAL NUMERAL, PRECEDED BY A DOLLAR SIGN:        $FF        $─├003.  ┴ BINARY NUMERAL, PRECEDED BY A PERCENT SIGN:        %100000014.  ┴ CHARACTER LITERAL, PRECEDED BY AN APOSTROPHE:        '┴5.  ┴N IDENTIFIER:        LOOP        COLOR.MEMORY        DISK.DEVICENUM    ╘HE NUMERIC VALUE OF AN IDENTIFIER IS GIVEN BY ITS MOST    RECENT DEFINITION AS A SYMBOL OR AS A LABEL.6.  ╘HE "LOCATION COUNTER", EITHER A PERIOD OR ASTERISK:        .        *    ╘HE NUMERIC VALUE OF THE LOCATION COUNTER IS THE ADDRESS IN    THE OBJECT PROGRAM CORRESPONDING TO THE BEGINNING OF THE    CURRENT SOURCE LINE.7.  ┴N EXPRESSION PRECEDED BY A "UNARY OPERATOR":        < ┼         ; LOW-ORDER BYTE OF ┼        > ┼         ; HIGH-ORDER BYTE OF ┼        - ┼         ; NEGATIVE ┼ (TWO'S COMPLEMENT)        ? ┼         ; LOGICAL (ONE'S) COMPLEMENT OF ┼8.  ┴N EXPRESSION FOLLOWED BY A "BINARY OPERATOR" FOLLOWED BY ASECOND EXPRESSION:        ┼1 + ┼2     ; ADDITION        ┼1 - ┼2     ; SUBTRACTION        ┼1 * ┼2     ; MULTIPLICATION        ┼1 / ┼2     ; INTEGER DIVISION        ┼1 % ┼2     ; MODULO (REMAINDER AFTER INTEGER DIVISION)        ┼1 & ┼2     ; LOGICAL ┴╬─        ┼1 ! ┼2     ; LOGICAL ╧╥        ┼1 ^ ┼2     ; ARITHMETIC SHIFT                    ; LEFT SHIFT IF ┼2 IS POSITIVE                    ; RIGHT SHIFT IF ┼2 IS NEGATIVE╔F MORE THAN ONE OPERATOR IS USED IN THE SAME EXPRESSION, THEYARE DONE IN THE FOLLOWING ORDER: ? - (NEGATIVE) * % / -(SUBTRACTION) + & ! ^ < >.  ╔F THE SAME OPERATOR APPEARS TWICE,EVALUATION IS FROM RIGHT TO LEFT.  ┘OU CAN OVERRIDE THE NORMALORDER OF EVALUATION BY USING BRACKETS ("[" AND "]") ASPARENTHESES.╬OTE, HOWEVER, THAT ALL THESE ARITHMETIC OPERATIONS MAY BE DONEONLY ON CONSTANT EXPRESSIONS.  ╘HAT IS, YOU CANNOT USE THE ABOVEOPERATORS TO ADD THE CONTENTS OF VARIOUS MEMORY LOCATIONS.  ╘HEUSEFULNESS OF ELABORATE ASSEMBLER EXPRESSIONS IS PRIMARILY TODEFINE ONE SYMBOL IN TERMS OF ANOTHER, SO THAT IF YOU CHANGE ONESYMBOL, VARIOUS OTHER SYMBOLS ARE AUTOMATICALLY REDEFINED.┴SSEMBLER DIRECTIVES:╘HE ASSEMBLER DIRECTIVES PERFORM VARIOUS MISCELLANEOUS FUNCTIONS:.BYTE.BYTE ┌.BYTE ┌1, ┌2, ... , ┌3    ╘HE .BYTE DIRECTIVE ALLOCATES ONE OR MORE BYTES IN THE    OBJECT FILE.  ╔F AN EXPRESSION IS GIVEN, THE EXPRESSION IS    PUT IN AS THE INITIAL VALUE OF THE BYTE.  ╔F MORE THAN ONE    EXPRESSION IS GIVEN, SEPARATED BY COMMAS, THAN A BYTE IS    ALLOCATED FOR EACH EXPRESSION.  ╔F NO EXPRESSION IS GIVEN, A    SINGLE BYTE IS ALLOCATED WITH AN INITIAL VALUE OF ZERO.  ╧NLY    THE LOW-ORDER BYTE OF THE EXPRESSION IS USED..WORD.WORD ┼.WORD ┼1, ┼2, ... , ┼3    ╘HE .WORD DIRECTIVE IS VERY SIMILAR TO THE .BYTE DIRECTIVE,    BUT TWO BYTES ARE ALLOCATED FOR EACH EXPRESSION, THE FIRST    FOR THE LOW-ORDER BYTE AND THE SECOND FOR THE HIGH-ORDER    BYTE.  ╔F NO EXPRESSION IS GIVEN, THEN TWO BYTES ARE    ALLOCATED, BOTH INITIALIZED TO ZERO.    ╬OTE THAT            .WORD ┼    IS EXACTLY EQUIVALENT TO:            .BYTE < ┼, > ┼.BLKB.BLKB ┼    ╘HE .BLKB DIRECTIVE IS USED TO ALLOCATE MEMORY IN THE OBJECT    PROGRAM WITHOUT SPECIFYING THE INITIAL VALUES.  ╔F AN    EXPRESSION IS GIVEN, THAT NUMBER OF BYTES IS ALLOCATED.  ╔F    NO EXPRESSION IS GIVEN, 1 BYTE IS ALLOCATED.  ┬UT IF THE    VALUE OF THE EXPRESSION IS ZERO, NO BYTES ARE ALLOCATED.  ╔F    THE EXPRESSION IS NEGATIVE OR GREATER THAN 32767, AN ERROR    MESSAGE IS GENERATED AND NO BYTES ARE ALLOCATED..BLKW.BLKW ┼    ╘HE .BLKW DIRECTIVE IS SIMILAR TO THE .BLKB DIRECTIVE,    EXCEPT THAT THE NUMBER OF BYTES TO BE ALLOCATED IS    MULTIPLIED BY TWO..ASCII "╘EXT STRING"    ╘HE .ASCII DIRECTIVE IS USED TO ALLOCATE MEMORY IN THE    OBJECT PROGRAM FOR A TEXT STRING.  ╧NE BYTE IS ALLOCATED FOR    EACH CHARACTER IN THE TEXT STRING, AND EACH BYTE IS    INITIALIZED WITH THE CHARACTER CODE (NOT THE CODE FOR SCREEN    MEMORY) FOR THE CHARACTER FROM THE SOURCE LINE.  ╘HE TEXT    STRING CAN BE DELIMITED BY ANY CHARACTER NOT FOUND WITHIN    THE TEXT STRING, WITH THE EXCEPTION THAT A SEMICOLON (";"),    A SPACE, OR A ╥┼╘╒╥╬ CHARACTER MAY NOT BE USED AS THE    DELIMITER.  ╬OTE THAT THE CHARACTER CODES ARE NOT TRUE ┴╙├╔╔    BUT THE ├OMMODORE VARIANT, SOMETIMES CALLED ╨┼╘╙├╔╔..ASCIZ /╘EXT STRING/    ╘HE .ASCIZ DIRECTIVE IS SIMILAR TO THE .ASCII DIRECTIVE,    EXCEPT THAT A ZERO BYTE IS ALLOCATED AFTER THE TEXT STRING..ORIGIN ┼    ╘HE .ORIGIN DIRECTIVE IS USED AT THE BEGINNING OF THE SOURCE    FILE TO SPECIFY THE ADDRESS TO BE USED FOR THE FIRST BYTE IN    THE OBJECT FILE.  ╔N FACT, THE .ORIGIN DIRECTIVE NEED NOT BE    LITERALLY ON THE FIRST LINE OF THE SOURCE FILE, BUT IT MUST    COME BEFORE ANY SOURCE LINES THAT ALLOCATE MEMORY IN THE    OBJECT FILE.  ╔F YOU DO NOT INCLUDE A .ORIGIN DIRECTIVE, THE    DEFAULT ORIGIN IS 49152 ($├000 HEXADECIMAL)..PRINT ┼ TEXT    ╘HE .PRINT DIRECTIVE IS USED TO PRINT MESSAGES ON THE    TERMINAL AND INTO THE OPTIONAL LIST FILE.  ╘HE EXPRESSION    FOLLOWING THE .PRINT IS EVALUATED.  ╘HE NUMERIC VALUE OF    THAT EXPRESSION IS PRINTED, IN DECIMAL, TO THE SCREEN AND    INTO THE OPTIONAL LIST FILE, FOLLOWED BY ANY OTHER TEXT ON    THE SOURCE LINE.  ╘HE MAIN USE OF THE .PRINT DIRECTIVE IS TO    PRODUCE A MEMORY MAP RATHER THAN A FULL LISTING OF EVERY    LINE OF THE PROGRAM.  ╘HE OUTPUT FROM THE .PRINT DIRECTIVE    IS PERFORMED EVEN IF THE .NOLIST DIRECTIVE IS IN EFFECT.     ┼XAMPLES:            .PRINT SUBROUTINE SUBROUTINE            SUBROUTINE:                 ...                ...                RTS            .PRINT * - SUBROUTINE, LENGTH OF SUBROUTINE            .PRINT * ┼ND OF FILE            .PRINT * - START, ╙IZE OF FILE.NOLIST    ╘HE .NOLIST DIRECTIVE TURNS OFF THE LISTING OF EVERY SOURCE    LINE TO THE SCREEN AND TO THE OPTIONAL LIST FILE.  ╘HE    OUTPUT OF THE .PRINT DIRECTIVE IS STILL PERFORMED, HOWEVER..LIST    ╘HE .LIST DIRECTIVE TURNS BACK ON THE LISTING:OF EVERY    SOURCE:LINE, AFTER; PRPVIOUS .NOLIST DIPECTIVE. !┘N:THIS    WAY= YO ≡ ▌┌ ╓ ░░─ò5C╛l ─R⌠c«PR; {E:PCpU B L Q√   ▌┘»░ ┘╖ 40p n ╜╨    α« ┘░[ 0p s ╤└ Ç; ^┐a    ▌   ∞ √{ß╨≈0pµó"""- _≡ εταÉ}∩─\╨α╣ ░í╗IVE IS USED TO INCORPORATE ANOTHER SOURCE    FILE AS THOUGH IT HAD BEEN MERGED WITH THE PRINCIPAL SOURCE    FILE.  ╘HIS ALLOWS YOU TO HAVE A LIBRARY OF COMMON    SUBROUTINES WITHOUT HAVING TO MAKE A SEPARATE COPY OF THE    SUBROUTINES IN EACH PROGRAM IN WHICH YOU USE THEM.  ╔T IS    ALSO USEFUL TO MAKE SEVERAL, SLIGHTLY DIFFERENT VERSIONS OF    THE SAME PROGRAM.  ╔T ISαALSO USEFUL TO DIVIE UP A LARGE    PROGRAM FOR MORE CONVENIENT EDITING.  ╔T IS ALSO USEFUL FORα   INCORPORATING A LIST OF COMMON SYMBOL DEFINITIONS, SUCH AS    THE ADDRESSES OF THE ╦┼╥╬┴╠ ROUTINES.  ╘HE ASSEMBLER FIRST    LOOKS FOR A FILE WHOSE NAME IS GIVEN BY THE IDENTIFIER    (CONVERTED TO LOWER CASE).  ╔F THAT FILE CANNOT BE FOUND, IT    ADDS ".A" TO THE FILENAME AND LOOKS FOR THAT NAME.  ┴FTER    THE ASSEMBLER HAS FINISHED PROCESSING THE INCLUDED SOURCE    FILE, IT RETURNS TO THE PRINCIPAL SOURCE FILE AND CONTINUES    FROM THE LINE FOLLOWING THE .INCLUDE DIRECTIVE.  ╘HE    INCLUDED FILE CAN INCLUDE A "THIRD-LEVEL" SOURCE FILE, BUT    THERE IS A MAXIMUM OF FOUR LEVELS OF INCLUSION.┼RROR MESSAGES:╞ILE NAME MAY BE 1 TO 14 CHARS LONG    ╔F, WHEN THE ASSEMBLER INITIALLY ASKS FOR THE NAME OF THE    SOURCE FILE, YOU HIT THE ╥┼╘╒╥╬ KEY WITH NO NAME, OR GIVE A    NAME LONGER THAN 14 CHARACTERS, YOU GET THIS MESSAGE.├OULDN'T CREATE OBJECT FILE:├OULDN'T CREATE LIST FILE:┼RROR READING SOURCE FILE:┼RROR WRITING TO LIST FILE:┼RROR WRITING TO LIST FILE:┼RROR CLOSING OBJECT FILE:┼RROR CLOSING LIST FILE:┼RROR RE-READING SOURCE FILE    ┴LSO PRINTS THE ERROR MESSAGE GIVEN BY THE DISK DRIVE├OULDN'T OPEN CONTROL OR RANDOM CHANNEL    ═AY INDICATE THAT YOU RAN ┼┴ WHILE FILE CHANNELS WERE STILL    OPENED FROM ANOTHER PROGRAM.╠INE TOO LONG    ╙OURCE LINE LONGER THAN 255 CHARACTERS.┴SSEMBLY TERMINATED BY ╙╘╧╨ KEY╒NRECOGNIZED STATEMENT    ╘HE FIRST NON-BLANK CHARACTER IN THE SOURCE LINE WAS NEITHER    A LETTER NOR A PERIOD.  ═AY INDICATE THAT THE SOURCE LINE    CONTAINS A NON-PRINTING @HARACTER.╒NY COGNIZED OPCODE    ═AY INDICATE A MISSPELLED OPCODE, OR THE ACCIDENTAL OMISSION    OF THE COLON AFTER A LABEL OR OF THE = FOLLOWING A SYMBOL    DEFINITION.┼XTRA INPUT IGNORED    ═AY INDICATE THE OMISSION OF THE SEMICOLON PRECEDING A    COMMENT.  ═AY ALSO INDICATE THE OMISSION OF AN OPERATOR FROM    AN EXPRESSION.╬O CHARACTER AFTER '    ╔NDICATES THAT AN APOSTROPHE WAS THE LAST CHARACTER IN THE    SOURCE LINE.═ALFORMED EXPRESSION╫ARNING - EXTRA [╫ARNING - EXTRA ]╫ARNING - ARITHMETIC OVERFLOW    ╔NDICATES AN ARITHMETIC OPERATION WHOSE RESULT REQUIRED MORE    THAN 16 BITS.╫ARNING - DIVISION BY ZERO╔NTERNAL ASSEMBLER ERROR    ╘HIS MESSAGE INDICATES THAT THE ASSEMBLER WAS NOT ABLE TO    EVALUATE AN EXPRESSION PROPERLY.╙ECOND ARGUMENT TO ^ MUST BE -15 TO 15╒NDEFINED SYMBOL: IDENTIFIER╙YMBOL TABLE FULL    ╔NDICATES THAT THE ASSEMBLER WAS NOT ABLE TO CREATE A LABEL    OR SYMBOL BECAUSE OF INSUFFICIENT AVAILABLE MEMORY.╫ARNING - REDEFINING LABEL:    ╘HIS MAY INDICATE THAT THE SOURCE FILE HAS TWO DIFFERENT    LABELS WITH THE SAME NAME, OR A SYMBOL AND A LABEL WITH THE    SZME NAME.  ╔T ALSO MAY INDICATE A ^UPLICATE NAME FROM AN    INCLUDE FILE.  ╔F, HOWEVER, YOU GET THIS ERROR MESSAGE FOR    EVERY LABEL IN THE SOURCE FILE, IT MEANS THAT THE VALUE OF    THE LABELS CHANGED FROM THE FIRST PASS TO THE SECOND PASS.     ╘HIS, IN TURN, USUALLY MEANS THAT A SYMBOL WAS USED IN A    .BLKB OR .BLKW DIRECTIVE BEFORE IT WAS DEFINED, OR THAT A    SYMBOL REFERRING TO PAGE ZERO WAS USED BEFORE IT WAS    DEFINED.╒NRECOGNIZED ADDRESSING MODE╔MPROPER ADDRESSING MODE FOR OPCODE    ╬OT ALL THE POSSIBLE ADDRESSING MODES CAN BE USED FOR ANY    PARTICULAR OPCODE.  ╙EE THE ├-64 ╨ROGRAMMER'S ╥EFERENCE    ═ANUAL, OR ANY OTHER BOOK ABOUT THE 6502, FOR A DESCRIPTION    OF THE PERMISSIBLE ADDRESSING MODES FOR EACH OPCODE.┼XPRESSION TRUNCATED    ┴N EXPRESSION USED WITH AN OPCODE IN IMMEDIATE MODE OR USED    IN A .BYTE DIRECTIVE WAS NOT WITHIN THE RANGE -256 TO 255.┬RANCH OUT OF RANGE    ╘HE VARIOUS BRANCH INSTRUCTIONS FOR THE 6510 MAY ONLY BE    USED TO BRANCH TO A LOCATION LESS THAN 254 BYTES BEFORE THE    BRANCH INSTRUCTION OR LESS THAN 253 BYTES AFTER THE BRANCH    INSTRUCTION.  ╘HIS ERROR MESSAGE IS ALSO OFTEN GIVEN IF THE    EXPRESSION SPECIFYING THE ADDRESS USES AN UNDEFINED    IDENTIFIER.╒NRECOGNIZED DIRECTIVE    ┴ SOURCE LINE BEGAN WITH A PERIOD, BUT WAS NOT ONE OF THE    ASSEMBLER DIRECTIVES DESCRIBED ABOVE.╫ARNING - EXTRA COMMA    ┴ .BYTE OR .WORD DIRECTIVE HAD A TRAILING COMMA AFTER THE    LAST EXPRESSION.╫ARNING - COMMA INSERTED    ┴ .BYTE OR .WORD DIRECTIVE HAD TWO EXPRESSIONS NOT SEPARATED    BY A COMMA.┴RGUMENT MUST BE POSITIVE    ╘HE ARGUMENT TO .BLKB OR TO .BLKW WAS NEGATIVE, OR GREATER    THAN 32767.═ISSING STRING    ┴N .ASCII OR .ASCIZ DIRECTIVE DID NOT HAVE A TEXT STRING, OR    USED A SEMICOLON AS THE DELIMITER.╒NTERMINATED STRING    ┴N .ASCII OR .ASCIZ DIRECTIVE WAS FOLLOWED BY A TEXT STRING    WHICH WAS NOT FOLLOWED BY THE DELIMITER CHARACTER PRECEDING    THE TEXT STRING.╧RIGIN CAN ONLY BE SET ONCE AT START    ╘HE SOURCE FILE CONTAINED TWO .ORIGIN DIRECTIVES, OR    CONTAINED AN .ORIGIN DIRECTIVE AFTER A SOURCE LINE WHICH    ALLOCATED MEMORY.  ═AY INDICATE THAT AN INCLUDE FILE HAD AN    .ORIGIN DIRECTIVE.╞ILENAME MUST START WITH A LETTER    ┴ .INCLUDE DIRECTIVE WAS NOT FOLLOWED BY AN IDENTIFIER.┴LREADY AT MAXIMUM DEPTH OF INCLUDES    ╧NLY FOUR LEVELS OF SOURCE FILES ARE ALLOWED.├OULDN'T OPEN INCLUDE FILE:    ╨RINTS THE ERROR MESSAGE FROM THE DISK DRIVE╞ILE NUMBER NOT OPENED╞ILE NUMBER OUT OF RANGE╞ILE NUMBER ALREADY IN USE─IRECTORY NOT UPDATED    ╘HESE MESSAGES INDICATE INTERNAL ERRORS IN THE FILE-HANDLING    ROUTINES USED BY THE ASSEMBLER.╞OR MORE INFORMATION, CALL ╠EW ╠ASHER AT (617) 547-0340─╠ 6: